package com.chat.login.service;

import com.chat.common.dto.AuthRequestDTO;
import com.chat.common.entity.User;
import com.chat.common.vo.R;
import com.chat.login.domain.dto.CheckMailDTO;
import com.chat.login.domain.vo.LoginUserVO;

public interface AuthService {
    /**
     * 验证token是否合法
     * @param authRequestDTO
     * @return
     */
    R validateToken(AuthRequestDTO authRequestDTO);

    /**
     * 刷新token
     * @param token
     * @return
     */
    R<LoginUserVO> refreshToken(String token);

    /**
     * 通过账号获取加密邮箱
     * @param account
     * @return
     */
    R getAccountOfMail(String account);
    R getAccountOfMail(User user);

    /**
     * 检查邮箱是否正确，并发送验证码
     * @param checkMailDTO
     * @return
     */
    R checkMailAndAccount(CheckMailDTO checkMailDTO);

    /**
     * 判断账号状态
     * @param account
     * @return
     */
    R BooleanAccountState(String account);
}
